/**
 *
 */
package com.angel.data.generator.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.angel.common.helpers.StringHelper;

/**
 * @author William
 *
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({java.lang.annotation.ElementType.FIELD})
public @interface Inject {

	/**
	 * Indicates bean name to find in spring context to inject.
	 * If bean name is an empty value, it finds bean by field type in spring context.
	 * 
	 * @return a bean name to inject, or a empty value.
	 */
	public String beanName() default StringHelper.EMPTY_STRING;
	
	/**
	 * Check if injection field in spring are defined in context application.
	 *  
	 * By default it checks injection fields.
	 * 
	 * @return true if it checks injection, otherwise it returns false.
	 */
	public boolean checkInjection() default true;
}
